﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO.Model;
using DAO.Bussiness.Repository;
public partial class Comandas : System.Web.UI.Page
{
    List<Plato> platos;
    List<Bebida> bebidas;

    protected void Page_Load(object sender, EventArgs e)
    {

        if (Page.IsPostBack)
        {
        }
        else {
            Session["BebidasActuales"] = null;
            Session["PlatosActuales"] = null;
        }
        
    }


    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DAO.Model.Bebida bebida = new DAO.Model.Bebida();
        GridViewRow row = GridView1.SelectedRow;

        bebidas= (List<DAO.Model.Bebida>)Session["BebidasActuales"] == null ? new List<DAO.Model.Bebida>() : (List<DAO.Model.Bebida>)Session["BebidasActuales"] ;

        bebida.Id_Alimento = Convert.ToInt32(GridView1.SelectedDataKey["Id_Bebida"].ToString());
        bebida.Descripcion = row.Cells[1].Text;
        bebida.Tamanio = row.Cells[2].Text;
        bebida.Valor = Convert.ToInt32(row.Cells[3].Text);

        bebidas.Add(bebida);
        Session["BebidasActuales"] = bebidas;
        GridView4.DataSource = bebidas;
        GridView4.DataBind();
    }

    protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
    {
        Plato plato = new Plato();
        GridViewRow row = GridView2.SelectedRow;

        platos = (List<Plato>)Session["PlatosActuales"] == null ? new List<Plato>() : (List<Plato>)Session["PlatosActuales"];

        plato.Id_Alimento = Convert.ToInt32 (GridView2.SelectedDataKey["Id_Plato"].ToString());
        plato.Descripcion = row.Cells[1].Text;
        plato.Tamanio = row.Cells[2].Text;
        plato.Valor = Convert.ToInt32(row.Cells[3].Text);
        plato.Tiempo_Elaboracion = GridView2.SelectedDataKey["Tiempo_Elaboracion"].ToString();
        platos.Add(plato);

        Session["PlatosActuales"] = platos;
        GridView3.DataSource = platos;
        GridView3.DataBind();

    }

    protected void GridView3_SelectedIndexChanged(object sender, EventArgs e)
    {
        platos = (List<Plato>)Session["PlatosActuales"] == null ? new List<Plato>() : (List<Plato>)Session["PlatosActuales"];
        Int32 id_plato = Convert.ToInt32 (GridView3.SelectedDataKey["Id_Plato"].ToString());

        platos.Remove(platos.Where(p => p.Id_Alimento == id_plato).First());
        Session["PlatosActuales"] = platos;
        GridView3.DataSource = platos;
        GridView3.DataBind();
    }

    protected void GridView4_SelectedIndexChanged(object sender, EventArgs e)
    {
        bebidas = (List<DAO.Model.Bebida>)Session["BebidasActuales"] == null ? new List<DAO.Model.Bebida>() : (List<DAO.Model.Bebida>)Session["BebidasActuales"];
        Int32 id_bebida = Convert.ToInt32(GridView4.SelectedDataKey["Id_Bebida"].ToString());
        bebidas.Remove(bebidas.Where(b => b.Id_Alimento == id_bebida).First());
        Session["BebidasActuales"] = bebidas;
        GridView4.DataSource = bebidas;
        GridView4.DataBind();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        ComandaRepository cr = new ComandaRepository();
        ComandaDetalleRepository cdr = new ComandaDetalleRepository();
        Usuario usuario = new Usuario();
        Comanda_Detalle detalle = new Comanda_Detalle();
        Comanda comanda = new Comanda();
        
        comanda.Id_Estado = 1;
        comanda.Id_Reserva = Convert.ToInt32(Session["Reserva"].ToString());
        cr.Add(comanda);
        cr.Save();
        foreach (Plato p in platos)
        {
            cdr.Add(new Comanda_Detalle { Id_Alimento = p.Id_Alimento, Nro_Comanda = comanda.Nro_Comanda, Id_Estado = 1 });
        }
        foreach (Bebida b in bebidas)
        {
            cdr.Add(new Comanda_Detalle { Id_Alimento = b.Id_Alimento, Nro_Comanda = comanda.Nro_Comanda, Id_Estado = 1 });
        }

        cdr.Save();

        Session["PlatosActuales"] = new List<Plato>();
        Session["BebidasActuales"] = new List<DAO.Model.Bebida>();

        

        
    }
}